EIPを保持したまま別のVPCにEC2インスタンスを移行してみた
はじめに
こんにちは。AWS事業本部コンサルティング部に所属している和田響です。
この記事では、EIPを保持したまま同一アカウントの違うVPCにEC2インスタンスを移行する方法についてまとめてみました。
やりたいこと
以下の画像のように、EIP(今回は18.178.188.172)を保持したまま、同じAWSアカウント内の別のVPCにEC2インスタンスを移行します。
やり方
EIPを保持したまま同一アカウントの違うVPCにEC2インスタンスを移行する方法は以下の手順で実現可能です。
- 移行元のEC2インスタンスのAMIを作成する
- 移行先のVPCに1で作成したAMIからEC2インスタンスを起動する
- 移行元のEC2インスタンスのEIPの関連付けを解除する
- 移行先のEC2インスタンスにEIPの関連付けを行う
やってみる
準備
今回は以下のリソースを準備しました。
- 移行元VPC:From-vpc(10.0.0.0/16)
- パブリックサブネット(10.0.0.0/20)
- 移行先:To-vpc(192.168.0.0/16)
- パブリックサブネット(192.168.0.0/20)
- 移行元EC2インスタンス(From-EC2)
- EIP(18.178.188.172)
移行元のEC2インスタンスのAMIを作成する
まずは移行元のEC2インスタンスからAMI(Amazon Machine Images)を作成します。
EC2のコンソールを開き、移行元のEC2インスタンス(From-EC2)を選択し、「アクション」-「イメージとテンプレート」-「イメージを作成」をクリックします。
任意のイメージ名、イメージの説明を入力し「イメージを作成」をクリックします。
※「再起動しない」オプションを有効にしないとEC2が再起動されます。(整合性を考慮すると再起動を推奨しますが、一時的な停止が許されない場合はこの項目にチェックを入れ再起動を防ぎます)
移行先のVPCに作成したAMIからインスタンスを起動する
続いて、移行先のVPC(To-vpc)に作成したAMIからインスタンスを起動します。
EC2のコンソールのサイドタブから「AMI」をクリックします。
AMIの一覧から先ほど作成したAMIが存在することを確認します。
※「自己保有」のAMIが表示されていることを確認します。
先ほど作成したAMI(From-EC2-AMI)を選択し、「AMIからインスタンスを起動」をクリックします。
名前を入力し
インスタンスタイプを選択し
キーペアを選択し
移行先のVPC(To-vpc)、サブネットを選択し
ストレージの種類と容量を選択し
「インスタンスを起動」をクリックします。
EC2のコンソールから、新しく起動したEC2インスタンスが移行先のVPCに作成されていることを確認します。
移行元のEC2インスタンスのEIPの関連付けを解除する
続いて、移行元のEC2インスタンスに関連づけられているEIPの関連付けを解除します。
EC2のコンソールから移行元のEC2インスタンス(From-EC2)を選択し、「アクション」-「ネットワーキング」-「Elastic IPアドレスの関連付けの解除」をクリックします。
内容を確認し、「Elastic IP アドレスの関連付けの解除」をクリックします。
移行先のEC2インスタンスにEIPの関連付けを行う
最後に、移行先のEC2インスタンス(To-EC2)にEIPの関連付けを行います。
EC2のコンソールのサイドタブから「Elastic IP」をクリックします。
対象のElastic IP アドレスを選択し、「アクション」-「Elastic IP アドレスの関連付け」をクリックします。
移行先のインスタンス、プライベートIPアドレスを選択し、「関連付ける」をクリックします。
移行先のEC2インスタンスが、移行先のVPCに存在し、移行前と同じEIPが割り当てられていることを確認します。
以上で、EIP(今回は18.178.188.172)を保持したまま、同じAWSアカウント内の別のVPCにEC2インスタンスを移行することができました。
最後に
今回は、EIPを保持したまま別のVPCにEC2インスタンスを移行するという内容に焦点を当てました。既存の環境から特定のリソースだけを切り分けたい際などのお役に立てれば幸いです。
実際のプロジェクトでは必要に応じて、移行前のEC2インスタンスの削除や、セキュリティグループの設定、ALBの構築等を追加等も行うことになると思います。